<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        // ES6中扩展运算符的作用：将一个数组变为一个以空格分隔的参数系列
        let arr1 = [1, 2, 3, 4, 5, 6];
        console.log(...arr1);

        //  用作数组的复制，可以避免浅拷贝问题(当数组没有嵌套时)
        let arr2 = [...arr1];
        arr2[0] = 11;
        console.log(arr1, arr2);

        // 对象的复制, 可以避免浅拷贝问题(当对象没有嵌套时)
        let obj1 = {
            name: 'mika'
        };
        let obj2 = { ...obj1 };
        obj2.name = 'zzzz';
        console.log(obj1, obj2);

        // 用作数组的合并
        let arr3 = [...arr1, ...arr2];
        console.log(arr3);

        // 用于对象的合并, 有命名冲突就后者覆盖前者
        let obj3 = {...obj1,...obj2};
        console.log(obj3);

        // 字符串改为数组
        let str1 = '11111';
        let arr4 = [...str1]
        console.log(arr4);
    </script>
</body>

</html>